An operating system performs various tasks relating to a computer system, including managing its hardware and software resources. Hardware resources include processors, primary storage (e.g., memory), secondary storage (e.g., hard disk or optical disk), printers, display adapters, network interface cards, input/output ports, etc. Software resources include application programs, user interfaces, device drivers, network protocol stacks, etc. The operating system manages and coordinates these resources to complete various tasks, such as under the direction of an application program.
Application programs may be invoked by users of operating systems, an operating system itself, or by other components associated with operating systems, such as other application programs. Application programs are generally invoked after an operating system has completed booting up.
Booting up an operating system involves loading at least a portion of the operating system into a computer system's primary storage. The following background description pertains to booting up an operating system on a personal computer, such as one employing the MICROSOFT WINDOWS operating system. When the computer is turned on, its basic input-output system (“BIOS”) may conduct a power-on self test to determine whether the computer's hardware components are operational. The BIOS may then retrieve a boot program that loads the operating system and copy information, such as a boot record, from the boot program into specific locations in primary storage. The BIOS may then branch to the boot record. The boot record may load an initial system file (e.g.; IO.SYS) into primary storage, which may load other portions of the operating system into primary storage, such as various operating system components.
Some of these operating system components include windows services, such as a windows logon (“winlogon”) service. The winlogon service enables users to log into the operating system, such as by providing a user name and password. Once a user logs on, the operating system may load various startup applications. Startup applications may be previously indicated by the user or by operating system components, such as when an application is installed on the computer system. The user may then be able to start other applications.
Boot duration may be defined as the time interval between a boot start time and a boot end time. The boot start time can occur either when powering on a computer or when the BIOS invokes the boot program. The boot end time occurs when a user is able to use the computer system, such as to start an application. Over time, as an operating system accumulates components and startup applications, the operating system's boot duration may increase and thereby cause users to wait longer for a computer system to start. For example, as a user installs applications or hardware, the installation may add various components, such as drivers, to the operating system. These components may increase the boot duration of the operating system.
A user wishing to decrease boot duration or a service provider seeking to provide a service for improving operating system performance may need to automatically measure the operating system's boot duration.